import Vue from 'vue'
import Vuex from 'vuex'
import { getItem, setItem } from '../utils/storige'
Vue.use(Vuex)
// 声明一个常量防止写错报错，存储的名字一致
// 就是本地存储 key 需要的名字
const TOKEN_KEY = 'TOUTIAO_USER'
export default new Vuex.Store({
   // 存放数据的地方
   // 公共的数据，每一个组件使用 $store可以访问
   state: {
      // user表示一个对象，存储当前用户信息，包含token等数据
      // user: null
      // 获取数据，还原成对象
      // user: JSON.parse(
      //    window.localStorage.getItem(TOKEN_KEY)
      // )

      user: getItem(TOKEN_KEY)
   },
   mutations: {
      // state.user = data 传参，传入多少等于多少
      setUser(state, data) {
         state.user = data

         // 为了防止持久化，刷新丢失，把数据存入本地存储
         // 把对象转换成 json 格式的字符串
         // window.localStorage.setItem(
         //    TOKEN_KEY,
         //    JSON.stringify(state.user)
         // )
         // 通过封装的函数直接转了，这里不用转
         setItem(TOKEN_KEY, state.user)
      }
   },
   actions: {},
   modules: {}
})
